The Soot framework for Java program analysis: a retrospective
نویسندگان
چکیده
Soot is a successful framework for experimenting with compiler and software engineering techniques for Java programs. Researchers from around the world have implemented a wide range of research tools which build on Soot, and Soot has been widely used by students for both courses and thesis research. In this paper, we describe relevant features of Soot, summarize its development process, and discuss useful features for future program analysis frameworks.
منابع مشابه
Interprocedural Program Analysis for Java based on Weighted Pushdown Model Checking
Based on the observation that “program analysis is abstraction plus model checking”, this paper investigates pushdown model checking based approach on interprocedural program analyses for mono-thread Java. The running example is an interprocedual dead code detection under PER (partial equivalence relation) based abstraction. The prototype implementation combines SOOT as preprocessing to convert...
متن کاملBuilding the abc AspectJ compiler with Polyglot and Soot
Aspect-oriented programming and the development of aspect-oriented languages is rapidly gaining momentum, and the advent of this new kind of programming language provides interesting challenges for compiler developers. Aspect-oriented language features require new compilation approaches, both in the frontend semantic analysis and in the backend code generation. This paper is about the design an...
متن کاملOptimizing Java Bytecode Using the Soot Framework: Is It Feasible?
This paper presents Soot, a framework for optimizing Java bytecode. The framework is implemented in Java and supports three intermediate representations for representing Java bytecode: Baf, a streamlined representation of Java’s stack-based bytecode; Jimple, a typed three-address intermediate representation suitable for optimization; and Grimp, an aggregated version of Jimple. Our approach to c...
متن کاملJTDec: A Tool for Tree Decompositions in Soot
The notion of treewidth of graphs has been exploited for faster algorithms for several problems arising in verification and program analysis. Moreover, various notions of balanced tree decompositions have been used for improved algorithms supporting dynamic updates and analysis of concurrent programs. In this work, we present a tool for constructing tree-decompositions of CFGs obtained from Jav...
متن کاملPredicate Interpretation Analysis Based on Soot
Symbolic execution maintains a path condition pc for every possible path of a program. It is challenging to construct a pc if some complex issues are involved in the path. A predicate interpretation pi is a subexpression of a pc and a pc of a path is a conjunction of all pis in the path. Predicate interpretation has been widely used in theoretical analysis on domain testing and related fields. ...
متن کامل